package main;

import java.util.Date;
import java.util.List;
import org.apache.log4j.BasicConfigurator;
import org.apache.log4j.Level;
import org.apache.log4j.Logger;
import org.hibernate.Session;



import conexiones.HibernateUtil;
import bbdd.*;


public class Ejemplo1 {

    public static void main(String[] args) {
        BasicConfigurator.configure();
    //    Logger.getRootLogger().setLevel(Level.INFO);  
        new Ejemplo1();
    }

    public Ejemplo1() {
 
        // Se inserta
        String nombre = insertEjemplo();

        // Se consulta y muestra por pantalla
    //   listEjemplo();

        // Se modifica
     //   updateEjemplo("1111111");

        // Se vuelve a consultar y mostrar por pantalla
  //      listEjemplo();
    }

    private void updateEjemplo(String dni) {
    	  Session session = HibernateUtil.getSessionFactory().getCurrentSession();
    	  session.beginTransaction();

    	  Persona prueba = (Persona) session.load(Persona.class, dni);
        prueba.setNombre("VictorGay");

        session.getTransaction().commit();
    }

    private void listEjemplo() {
    	  Session session = HibernateUtil.getSessionFactory().getCurrentSession();
    	  session.beginTransaction();

        List<Persona> ejemplos = session.createQuery("from Persona").list();
        for (Persona mostrar : ejemplos)
            System.out.println(mostrar.toString());

        session.getTransaction().commit();
    }

    private String insertEjemplo() {
        // Se obtiene la sesion
        Session session = HibernateUtil.getSessionFactory().getCurrentSession();
        session.beginTransaction();

        // Se instancia la clase Flight y se rellenan sus datos
        Persona f = new Persona();
        f.setDni("1199311");
        f.setNombre("Travelo2");
        f.setApellido1("porris2");
        f.setApellido2("cojon2");
        Date fecha = new Date(19850101);
        f.setFechaNacimiento(fecha);
        f.setSexo("Mujer");

        // Se salva en base de datos
        session.save(f);
        session.getTransaction().commit();

        return f.getNombre();
    }

}
